부동 소수점(floating point)

소수점이 고정되어 있지 않고 좌우로 움직일 수 있다는 뜻의 표현 방식
고정 소수점(fixed point)과는 달리 소수점을 자유롭게 움직일 수 있어서 표현할 수 있는 수의 범위가 매우 넓다

IEEE 754 표준의 단정밀도(single precision) 부동소수점 형식을 따른다

형식

±(1.가수부)×2^지수부-127

예시
[ 0 00000000 00000000000000000000000 ] ->[ **부호** **지수부** **가수부** ] 
부호 부분(1bit): 부호 결정. 0이면 양수, 1이면 음수  
지수 부분(8bit): 지수 표현. 이진법으로 표현한다. 양수와 음수를 표현해야 하기 때문에 255까지가 아니라 [-127~128]까지 표현할 수 있다.  
가수부 부분(23bit): 가수 표현. 실질적인 숫자. 만약 123,456을 표현한다면 가수는 123456이 된다.
* 가수(假數): 임시로 사용하는 수
부동소수점 변환 단계
  1. 이진수로 변환 : 9.875(10) = 1001.111(2)
  2. 정규화 : 1.001111 x 2^3
  3. 부분 분해
    부호 비트 : 0(양수)
    지수 : 3 + 127(바이어스(Bias)) = 130 = 100000010(2)
    가수 : 001111(1.xxx 지만 1.은 항상 동일하기 때문에 이진수로 변환 후 소수점 아래만 가져옴)
  4. 조합
    부호(0) + 지수(10000010) + 001111000...(부족한 비트는 0으로 채움)

최종 32비트 표현: 0 10000010 00111100000000000000000

10진수 변환
  1. 가수를 소수로 변환
    각 비트의 값: 2^-3 + 2^-4 + 2^-5 + 2^-6
    계산: 0.125 + 0.0625 + 0.03125 + 0.015625 = 0.234375
  2. 숨겨진 1 더하기
    1 + 0.234375 = 1.234375
  3. 지수 적용
    1,234375 x 2^3 = 9.875
가수 표현

가수는 소수점 아래이기 때문에 각 자리는 앞에서부터 2^-1, 2^-2... 가 된다
즉, 001111 이라면 각 비트의 값은 2^-3 + 2^-4 + 2^-5 + 2^-6 가 된다
이를 계산하면 0.125 + 0.0625 + 0.03125 + 0.015625 = 0.234375가 된다